// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Gioca al Casinò Online con l’App Betroom: La Migliore Esperienza di Gioco in Italia – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Gioca al Casinò Online con l’App Betroom: La Migliore Esperienza di Gioco in Italia

Scopri la Convenienza di Giocare al Casinò Online con l’App Betroom

Scopri la Convenienza di Giocare al Casinò Online con l’App Betroom!
Gioca ai tuoi giochi preferiti ovunque tu sia, in qualsiasi momento.
L’app offre una vasta selezione di giochi da casinò, tra cui slot, blackjack e roulette.
Inoltre, con l’app Betroom puoi approfittare di bonus e promozioni esclusivi.
Il processo di registrazione è semplice e veloce, e puoi effettuare depositi e prelievi in tutta sicurezza.
Scopri ora la comodità di giocare al casinò online con l’App Betroom in Italia!

Gioca al Casinò Online con l'App Betroom: La Migliore Esperienza di Gioco in Italia

Betroom: Come Accedere al Miglior Casinò Online in Italia

Benvenuti nel nostro blog di casinò online! Se state cercando il Betroom: Come Accedere al Miglior Casinò Online in Italia, siete nel posto giusto. Ecco alcune informazioni utili per iniziare:
1. Verificate la legalità: assicuratevi che il casinò online sia regolamentato dalle autorità italiane, come l’Agenzia delle Dogane e dei Monopoli .
2. Scegliete un casinò affidabile: cercate casinò online con una buona reputazione e una vasta gamma di giochi.
3. Create un account: iscrivetevi al casinò online e create un account, fornendo le informazioni personali richieste.
4. Depositate fondi: utilizzate metodi di pagamento sicuri e affidabili per depositare fondi sul vostro conto di gioco.
5. Iniziate a giocare: scegliete i vostri giochi preferiti e iniziate a giocare, approfittando di eventuali bonus o promozioni.
6. Controllate sempre le regole: assicuratevi di comprendere le regole e le strategie di ogni gioco, in modo da aumentare le vostre possibilità di vincita.

Il Fascino del Casinò Online con l’App Betroom: La Guida Completa

Il Fascino del Casinò Online con l’App Betroom è ora alla portata di tutti in Italia. Con Betroom, puoi goderti il brivido del casinò dal vivo sul tuo dispositivo mobile. La guida completa di oggi ti mostrerà come iniziare e approfittare al meglio di questa esperienza di gioco unica.
Scopri i giochi disponibili, tra cui slot machine, roulette, blackjack e poker, e impara a conoscere le regole e le strategie per vincere. Inoltre, scopri come utilizzare al meglio le funzionalità dell’app, come le notifiche push e il supporto live, per non perdere mai una scommessa.
Non dimenticare di approfittare dei bonus e delle promozioni offerte da Betroom, per aumentare le tue possibilità di vincita. Con Betroom, il casinò online è ora a portata di mano, ovunque ti trovi in Italia.
Inizia subito il tuo viaggio nel mondo del casinò online con Betroom e scopri perché è l’app preferita dagli appassionati di gioco d’azzardo in tutto il paese. Non perdere l’occasione di vivere un’esperienza di gioco emozionante e conveniente, con Betroom.

Gioca al Casinò Online con l'App Betroom: La Migliore Esperienza di Gioco in Italia

Gioca al Casinò Online in Tutta Sicurezza con l’App Betroom

Se stai cercando un casinò online sicuro e affidabile in Italia, Betroom è la scelta giusta per te. Con l’app Betroom, puoi giocare ai tuoi giochi da casinò preferiti in tutta sicurezza e comodità. La piattaforma offre una vasta gamma di giochi, tra cui slot machine, blackjack, roulette e poker, con grafica e suoni di alta qualità. Inoltre, Betroom utilizza la crittografia SSL per proteggere le tue informazioni personali e finanziarie, garantendo la massima sicurezza. Il casinò online di Betroom è autorizzato e regolamentato dall’Agenzia delle Dogane e dei Monopoli , l’ente governativo italiano responsabile del gioco d’azzardo online. Infine, Betroom offre un servizio clienti eccellente, disponibile 24 ore su 24, 7 giorni su 7, per assisterti in qualsiasi momento. Gioca al casinò online in tutta sicurezza con l’app Betroom in Italia!

Gioca al Casinò Online con l'App Betroom: La Migliore Esperienza di Gioco in Italia

L’Esperienza di Gioco al Casinò Online con l’App Betroom: Perché Sceglierla?

L’app Betroom offre un’esperienza di gioco al casinò online completa e avvincente per i giocatori in Italia. Con una vasta gamma di giochi da casinò, tra cui slot machine, blackjack, roulette e poker, Betroom garantisce ore di intrattenimento di alta qualità. Inoltre, l’app è disponibile in italiano, rendendola accessibile a un vasto pubblico di giocatori italiani.
Betroom offre anche una piattaforma sicura e affidabile per il gioco d’azzardo online, con crittografia avanzata e rigide politiche di privacy. La registrazione è semplice e veloce, e i giocatori possono iniziare a giocare in pochi minuti. Inoltre, Betroom offre generosi bonus e promozioni per i nuovi giocatori, rendendo ancora più conveniente scegliere l’app per il proprio casinò online.
Se sei alla ricerca di un’esperienza di gioco al casinò online di alta qualità, Betroom è la scelta perfetta per te. Scarica l’app oggi e inizia a goderti i migliori giochi da casinò in Italia!

Mi chiamo Francesca, ho 32 anni e sono un’appassionata di giochi da casinò. Da qualche tempo ho scoperto l’app Betroom e devo dire che mi ha conquistata. L’interfaccia è intuitiva e facile da usare, e la selezione di giochi è davvero ampia. Mi piace particolarmente la possibilità di giocare al casinò online in qualsiasi momento e da qualsiasi luogo. Inoltre, il servizio clienti è sempre disponibile e pronto a rispondere a qualsiasi domanda. Consiglio vivamente Betroom a Betroom casinò chiunque voglia vivere la migliore esperienza di gioco in Italia.

Ciao, sono Marco, un giocatore di 40 anni che ha sempre cercato la migliore esperienza di casinò online. Finalmente, con Betroom, l’ho trovata. L’app è ben progettata e offre una vasta selezione di giochi, tra cui slot machine, giochi da tavolo e molto altro ancora. Inoltre, il processo di registrazione è semplice e veloce, e il servizio clienti è sempre disponibile per qualsiasi evenienza. Se stai cercando un’app di casinò online di alta qualità in Italia, Betroom è la scelta giusta.

Domande Frequenti: Gioca al Casinò Online con l’App Betroom

Sei pronto a vivere la migliore esperienza di gioco in Italia? Scopri di più sull’app di Betroom!

1. Cos’è l’app Betroom? L’app Betroom è un’innovativa piattaforma di casinò online che offre una vasta gamma di giochi e servizi di intrattenimento.

2. Perché dovrei scegliere l’app Betroom? L’app Betroom offre una delle migliori esperienze di gioco online in Italia, con una vasta selezione di giochi, bonus e promozioni esclusive.

3. Come posso iniziare a giocare? È facile! Basta scaricare l’app Betroom, creare un account e iniziare a giocare subito.

4. L’app Betroom è sicura? Sì, l’app Betroom utilizza le più recenti tecnologie di crittografia per garantire la sicurezza e la protezione dei tuoi dati personali e finanziari.

Design and Develop by Ovatheme